//
//  LQRequestApi.h
//  BaseProject
//
//  Created by 喻飞 on 15/5/21.
//  Copyright (c) 2015年 yuf. All rights reserved.
//

#import <Foundation/Foundation.h>
#import  "MKNetworkEngine.h"
#import "CJSONDeserializer.h"
typedef enum
{
    HK_HK_kADBannerTag            ,//001、广告
    HK_HK_userLogin           ,//002、登录
    HK_HK_appUserRegister           ,//003、注册
    HK_HK_registerCode          ,//004、注册获取验证码
    HK_HK_resetPassword          ,//005、忘记密码重置密码
    HK_HK_forgetPwdCode          ,//006、忘记密码获取验证码
    HK_HK_queryMallShippingAddress           ,//007、地址列表
    HK_HK_exitLogin           ,//008、退出登录
    HK_HK_queryCountOne           ,//009、首页商品
    HK_HK_queryCountTwo           ,//009.1、首页下面商品
    HK_HK_userFeedbackinfo       ,//00010、意见反馈
    HK_HK_contactInformation      ,//00011、联系方式（客服中心）
    HK_HK_queryMallGoods      ,//00012、商品详情
    HK_HK_saveMallOrder      ,//00013、立即预约
    HK_HK_queryDefaultMallShippingAddress      ,//00014、请求默认收货地址
    HK_HK_queryMemberInfoById      ,//00015、个人资料
    HK_HK_queryMemberMuseEpurseInfoById      ,//00016、账户余额
    HK_HK_updateMember      ,//00017、修改个人资料
    HK_HK_collectGoods      ,//00018、收藏商品
    HK_HK_deleteCollectGoods      ,//00019、取消收藏商品
    HK_HK_queryAppMallOrder      ,//00020、订单列表
    HK_HK_queryMallGoodsType      ,//00021、商品类型
    HK_HK_queryMyCollectGoodList      ,//00022、我的收藏
    HK_HK_addMallShippingAddress      ,//00023、添加地址
    HK_HK_queryAppMallGoodsInfo         ,//00023、商品列表（搜索）（分页）
    HK_HK_queryAppMallOrderDetail           ,//00024、订单详情
    HK_HK_updateMallShippingAddress           ,//00025、编辑收货地址
    HK_HK_deleteMallShippingAddress           ,//00026、删除收货地址
    HK_HK_HK_getAlipayInfo           ,//00027、获取支付宝配置信息
    HK_HK_payOrder           ,//00028、支付订单
    HK_HK_queryMallEpurse           ,//00029、充值有理列表
    HK_HK_queryAppMallGoodsServiceRange           ,//00030、商品图文详情
    HK_HK_queryMmemberScore            ,//00021、实时查询会员当前可用积分
    HK_HK_queryMallIntegrationGoods      ,//00032、积分商城商品
    HK_HK_saveMallIntegrationGoods           ,//00033兑换积分商品
    HK_HK_queryMemberIntegrationFlow            ,//00034我的积分记录
    HK_HK_queryMyMallGoodsComment               ,//00035我的评论列表
    HK_HK_queryAppMallGoodsComment               ,//00036商品评论列表
    HK_HK_saveMemberEpurseOrder               ,//00037生成充值订单
    HK_HK_payByMemberEpurse               ,//00038余额支付
    HK_HK_updateUserPassword               ,//00039修改密码
    HK_HK_saveMallGoodsComment                     ,//00040发布评价
    HK_HK_getWxpayInfo                     ,//00041微信支付配置信息
    HK_HK_queryMallShippingAddressById                    ,//00042地址详情
    HK_HK_footerADBannerTag            ,//0042、首页底部广告
    HK_HK_hotRecommendTag            ,//0043、首页底部推荐


} LQRequestType;

#pragma  mark =============================================
@protocol LQRequestApiDelegate ;

@protocol LQRequestApiDelegate <NSObject>


@optional

//以数组的方式呈现
- (void)fetchDatabaseFinishedFromCache:(NSMutableDictionary*)database withTag:(NSInteger)tag;

- (void)fetchDatabaseFinished:(NSMutableDictionary*)database withTag:(NSInteger )tag;

- (void)fetchDatabaseFailed:(NSError *)error message:(NSString *)message;


@end

@interface LQRequestApi : NSObject

@property (nonatomic) BOOL isQueueRun;

@property (strong, nonatomic) NSMutableDictionary*  userInfo;   //传入的信息字典
@property (strong, nonatomic) NSDictionary*         dictionary; //返回的查询结果
@property (strong, nonatomic) NSError*              error;      //错误信息

@property (weak, nonatomic) id<LQRequestApiDelegate> delegate;

@property (strong, nonatomic) MKNetworkEngine         *  engine; //
@property (nonatomic ,strong) NSString *requestStatus;
@property (nonatomic ,strong) id dataReceiver;
@property   SEL finishSelector;
@property   SEL failSelSelector;


+(MKNetworkEngine *)shareEngine:(NSString *)hostName;
+(MKNetworkEngine *)shareEngine;
+(LQRequestApi *)sharedInstance;


/*   所有接口 调用此方法
 *   dic 传递参数
 *   interface_Path 接口地址
 *   type  POST  GET
 tag 标记
 */
-(void)requestOperationWithDic:(NSMutableDictionary  *)dic  withPath:(NSString *)interface_Path  withHttpType:(NSString *)type  withTag:(NSInteger )tag;
@end
